DEFINITION MODULE GrafTool;

(*
Grafics Tools.

UK __DATE__ __TIME__
*)

(*DEF_SWITCHES*)

FROM RcMgr   IMPORT GPnt,GRect;
#ifdef FTLM2
FROM GrafMgr IMPORT MFormPtr,MouseColors;
#else
FROM GrafMgr IMPORT MFormPtr;
#endif
FROM PORTAB  IMPORT SIGNEDWORD,UNSIGNEDWORD;

#ifndef FTLM2
IMPORT AES;
#endif

#ifndef FTLM2
TYPE MouseColors = AES.ObjectColors;
#endif

TYPE MouseData = ARRAY[0..15] OF SIGNEDWORD;

PROCEDURE NewMouse(    XHotSpot  : UNSIGNEDWORD;
                       YHotSpot  : UNSIGNEDWORD;
                       ForeGround: MouseColors;
                       BackGround: MouseColors;
                   VAR Mask      : MouseData;
                   VAR Data      : MouseData): MFormPtr;

PROCEDURE DisposeMouse(VAR Form: MFormPtr);

PROCEDURE UserMouse(UserDefForm: MFormPtr);

TYPE MouseForms = (Arrow,
                   TextCursor,
                   BusyBee,
                   PointingHand,
                   FlatHand,
                   ThinCross,
                   ThickCross,
                   OutlinedCross);

PROCEDURE MouseForm(Form: MouseForms);

PROCEDURE LastMouse;

PROCEDURE ShowMouse;

PROCEDURE HideMouse;

PROCEDURE BusyMouse;

PROCEDURE ArrowMouse;

PROCEDURE GetMouse(VAR Pos: GPnt);

PROCEDURE RubberBox(Start: GPnt; VAR Box: GRect);

PROCEDURE HotDragBox(VAR Pos  : GPnt;
                     VAR Box  : GRect;
                         Limit: GRect;
                         Tree : AES.TreePtr): AES.ObjectPtr;

END GrafTool.
